package com.itheima.controller;


import cn.itheima.health.service.CheckGroupService;
import com.itheima.constant.MessageConstant;
import com.itheima.healt.entlty.QueryPageBean;
import com.itheima.healt.entlty.Result;
import com.itheima.pojo.CheckGroup;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController    // @   固定写法：    RestController     控制 是相应Js 格式  区别于 普通的 @Controller
@RequestMapping("/checkgroup")
public class CheckGroupController {

    @Reference      //创建一个CheckGroup 服务
    private CheckGroupService checkGroupService;

   @RequestMapping("/addGroup.do")     // 创建一个方法 里面传入 参数：CheckGroup 检查组，checkitemIds 检查项目ID
    public Result addGroup(@RequestBody CheckGroup checkGroup, @RequestParam("checkitemIds") int[] checkitemIds){
       try {
           //给 checkGroupService 创建一个add添加的方法
            checkGroupService.addGroup(checkGroup,checkitemIds);
           return  new Result(true, MessageConstant.ADD_CHECKGROUP_SUCCESS);
       } catch (Exception e) {
           e.printStackTrace();
           return  new Result(false, MessageConstant.ADD_CHECKGROUP_FAIL);
       }

    }

    @RequestMapping("/edit.do")
    public Result edit(@RequestBody CheckGroup checkGroup,@RequestParam("checkitemIds") int[] checkitemIds){
       try {
           checkGroupService.edit(checkGroup,checkitemIds);
           return  new Result(true, MessageConstant.EDIT_CHECKGROUP_SUCCESS);
       } catch (Exception e) {
           e.printStackTrace();
           return  new Result(false, MessageConstant.EDIT_CHECKGROUP_FAIL);
       }

    }

   @RequestMapping("/findPage.do")
    public Result findPage(@RequestBody QueryPageBean queryPageBean){
       try {
           //创建一个 checkGroupService . findPage 的方法传入queryPageBean 查询页面的参数
                //因为封装的数据需要用到List 集合 和 total
           Map map = checkGroupService.findPage(queryPageBean);
           //将Map集合返回
           return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,map);
       } catch (Exception e) {
           e.printStackTrace();
           return  new Result(false, MessageConstant.QUERY_CHECKGROUP_FAIL);
       }

    }

    @RequestMapping("/findAll.do")
    //查询所有不需要参数
    public Result findAll(){
        try {
            //创建一个 checkGroupService . findPage 的方法传入queryPageBean 查询页面的参数
            //因为封装的数据需要用到List 集合 和 total
           List<CheckGroup> list= checkGroupService.findAll();
            //将Map集合返回
            return  new Result(true, MessageConstant.QUERY_CHECKGROUP_SUCCESS,list);
        } catch (Exception e) {
            e.printStackTrace();
            return  new Result(false, MessageConstant.QUERY_CHECKGROUP_FAIL);
        }

    }

    @RequestMapping("/findCheckitemsByGroupId.do")
    public Result findCheckitemsByGroupId(@RequestParam("id") Integer id){
       try {  // [28,29,30,31]
           List<Integer> list = checkGroupService.findCheckitemsByGroupId(id);//  checkgoup_id  checkitem_id
           return  new Result(true, MessageConstant.QUERY_CHECKITEM_SUCCESS,list);
       } catch (Exception e) {
           e.printStackTrace();
           return  new Result(false, MessageConstant.QUERY_CHECKITEM_FAIL);
       }



    }
//
//
//
// @RequestMapping("/deleteCheckItemById.do")
//    public Result deleteCheckItemById(@RequestParam("id") Integer id){
//       try {
//            checkItemService.deleteCheckItemById(id);
//           return  new Result(true, MessageConstant.DELETE_CHECKITEM_SUCCESS);
//       } catch (Exception e) {
//           e.printStackTrace();
//           return  new Result(false, MessageConstant.DELETE_CHECKITEM_FAIL);
//       }
//
//    }


}
